import { fileURLToPath, URL } from 'node:url'
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { VueAmapResolver } from '@vuemap/unplugin-resolver'


// https://vitejs.dev/config/
export default defineConfig({
  optimizeDeps: {
    include: [
      'three',
      'three/addons/controls/OrbitControls.js',
      'three/addons/loaders/GLTFLoader.js',
      'three/addons/loaders/RGBELoader.js'
    ]
  },
  plugins: [
    vue(),
    AutoImport({
      resolvers: [VueAmapResolver()], // 自动导入 VueAMap 组件
    }),
    Components({
      resolvers: [VueAmapResolver()], // 自动注册 VueAMap 组件
    }),
  ],
  resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url)), // 配置路径别名
    },
  },
  server: {
    port: 5173, // 开发服务器端口号
    host: '0.0.0.0', // 主机名
    proxy: {
      '^/api': {
        target: 'http://localhost:5703', // 代理目标地址
        changeOrigin: true, // 允许跨域
        secure: false, // 如果目标是 HTTPS 协议，且没有证书
      },
      '^/trajectory': {
        target: 'http://192.144.214.228:8008', // 代理目标地址
        changeOrigin: true, // 允许跨域
        secure: false, // 如果目标是 HTTPS 协议，且没有证书
        rewrite: (path) => path.replace(/^\/trajectory/, '')
      },
      '^/test': {
        target: 'http://192.144.214.228:56789', // 代理目标地址
        changeOrigin: true, // 允许跨域
        secure: false, // 如果目标是 HTTPS 协议，且没有证书
        rewrite: (p) => p.replace(/^\/test/, ""),
      }
    },
  },
  build: {
    rollupOptions: {
      output: {
        manualChunks: {
          vue: ['vue'], // 将 Vue 单独打包
        },
      },
    },
  },
})
